/* eslint valid-jsdoc: "off" */
const path = require("path");
/**
 * @param {Egg.EggAppInfo} appInfo app info
 */

const middlewareApp = (app) => {
    // 在中间件最前面统计请求时间
};

module.exports = (appInfo) => {
    try {
        const config = (exports = {});
        //全局应用配置
        config.appData = {
            limit: 15, //分页默认
            offset: 0, //默认页码
        };
        //启动默认环境配置
        config.cluster = {
            listen: {
                port: 7021,
                hostname: "0.0.0.0", // 不建议设置 hostname 为 '0.0.0.0'，它将允许来自外部网络和来源的连接，请在知晓风险的情况下使用
                // path: '/var/run/egg.sock',
            },
        };
        // use for cookie sign key, should change to your own and keep security
        config.keys = appInfo.name + "_1635834843854_1898";

        config.static = {
            prefix: "/public/",
            dir: path.join(appInfo.baseDir, "/app/public/"),
        };
        // 应用中间件
        config.middleware = ["errorHandler"];

        //关闭安全威胁csrf的防范  影响post测试
        config.security = {
            csrf: {
                enable: false,
            },
        };
        //使用orm
        config.sequelize = {
            dialect: "mysql",
            host: "127.0.0.1",
            port: 3306,
            database: "zfb_db",
            username: "root",
            password: "root",
            //格式化时间
            timezone: "+08:00", // 保存为本地时区

            dialectOptions: {
                dateStrings: true,
                typeCast: true,
            },
        };
        //无论是应用层加载的中间件还是框架自带中间件，都支持几个通用的配置项：
        // enable：控制中间件是否开启。
        // match：设置只有符合某些规则的请求才会经过这个中间件。
        // ignore：设置符合某些规则的请求不经过这个中间件。
        // 三种配置项不要同时使用否则不生效！
        config.jwt = {
            enable: false,
            secret: "ZY-HZ", //加密数据
        };
        config.cors = {
            origin: "*",
            allowMethods: "GET,HEAD,PUT,POST,DELETE,PATCH",
        };
        // add your user config here
        const userConfig = {
            // myAppName: 'egg',
        };
        /**
         * built-in config
         * @type {Egg.EggAppConfig}
         **/

        return {
            ...config,
            ...userConfig,
        };
    } catch (err) {
        console.log("err", err);
    }
};
